<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>

  <body>
    <script>
      // 1.定义函数有几种方式
      // 三种：命名函数、匿名函数、实例化函数

      // 2.retrun关键字的意义
      // 停止执行，返回函数的对应值
      
      // 3.函数是否可以重定义，会有什么事情发生
      // 不可以，可能使会导致性能问题

      // 4.var和function关键字有什么特别功能？
      // var：可以变量提升；全局作用域
      // function：定义函数方法，函数作用域
      
      // 5.请定义一个函数，该函数功能为，传入一个值，返回这个值的平方值
      function fn(a){
        return a*a;
      }
      console.log(fn(6));

      // 6.请定义一个函数，该函数功能为，传入一个值，返回这个值的累加值

      function fn1(b){
        let sum1 = 0;
        for(let i=1; i<=b; i++){
          sum1+=i;
        }
        return sum1;
      }
      console.log(fn1(5));

      // 7.请写出一个函数，功能为：传入三个值，则返回这三个值最大的那个值
      function fn2(c,d,e){
        let f=c>d?c:d;
        let max=f>e?f:e;
        return max;
        
      }
      console.log(fn2(3,8,5));

      // 8.请定义一个函数，输入一个N值，则计算出该值的阶乘，即：n! = 1*2*3*4*5*6*...*N
      function fn3(g){
        let sum = 1;
        for(let i=1;i<=g;i++){
          sum*=i;
        }
        return sum;
      }
      console.log(fn3(3));

      // 9.使用add方法，让console输出的结果为true。  （面试题）
      	let num = {
          k:10,
          add(m){
            return m-this.k;
          }
        }
        console.log(num.add(20) == 10);
        

    </script>
  </body>
</html>
